package day03;

import java.util.Scanner;

//此类是用于验证逻辑运算符的测试DEMO
public class Test04 {
    public static void main(String[] args) {
//        int a = 5;
//        int b = 10;
//        int c = 5;
//        boolean result = a > b & b>c;     //&为逻辑与，但是条件一旦失败，整体失败所以为false
//        System.out.println(result);
//
//        boolean result1 = a >b | b> c;    //|为逻辑与，任一对即true
//        System.out.println(result1);
//
//        System.out.println(!(a == c));    //a==c为true !表取非，即为false
//
//        //下面是关于运用boolean进行闰年判定的测试demo
//        //计算闰年，闰年特点
//        /*1.能够被4整除，但不能被100整除
//        2.能被400整除
//        */
//        Scanner s = new Scanner(System.in);        //创建一个扫描器
//        System.out.println("请输入要计算的年份，输入完拍回车即可");
//        int year = s.nextInt();                    //获取用户键盘输入的证书类型，并赋值给year变量
//        //条件成立其一即可
//        boolean result = (year % 4 == 0 & year % 100 != 0) | year %  400 == 0;
//        System.out.println(result);

        //下面是短路与和短路非
        //短路与：逻辑与多个条件中，第一个执行的不成立，直接返回false,剩下的条件不执行
        //短路非，逻辑或多个条件中，第一个执行的成立，直接返回true，剩下的不执行
        int a = 5;
        int b =20;
        //打印false,因为条件一a > b 失败，条件不成立，打印false
//        System.out.println(a > b & ++b > a);
//        System.out.println(b);           //打印b为21

        //因为a不大于b所以直接短路，返回false,不会再执行++b>a的条件判断
        System.out.println(a > b && ++b > a);
        //打印true,因为++a < b 条件成立，直接短路，后续++b>21没有执行
        System.out.println(++a < b || ++b >= 21);
        System.out.println(a);   //打印6
        System.out.println(b);   //打印20

    }
}
